home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir31
/
mrgus01a.zip
/
MRGUS.TXT
< prev
Wrap
Text File
|
1993-09-09
|
15KB
|
285 lines
Multitrack Recording GUS By Dave Mercier
~~~~~~~~~~~~~~~~~~~~~~~~
Version 0.1 Alpha (many bugs)
Overview
~~~~~~~~
Multitrack Recording GUS is a program that will let you record and
play back multiple digital tracks on your Gravis Ultrasound.
You can play back up to 14 tracks in this version, but how many you
can play back before data is skipped, will depend on what frequency
you are recording/playing at, and how fast your computer is.
Actually, 14 tracks isn't a physical limit, it's just a practical
limit I have imposed on this version. 32 tracks could be done at a
lower frequency, but I didn't have room for them in normal text mode.
Here are some of the features of this program:
- Ability to record a track while listening to others
- Ability to set balance and volume for each track
- Ability to Mute a track from playing
- Ability to delete tracks
- A description can be attached to each track
- Ability to record from Line-in, Mic-in, or both
- Ability to record/playback at any supported frequency
What this program is useful for, is the home musician who just wants
to record some songs. You can only record one channel at a time. So
you have to record your drums, then your bass, then your guitar, etc,
all seperately. This is how most home studio musicians work with
their 4-tracks anyways. What this program offers, is a way to record
more than 4 tracks.
As for sound quality, it will greatly depend on your setup, and how
you record. The same principles go for digital recording go here, as
they do for others. Make sure you have the best level when you are
recording, not too low, not too high. Just expirement. Keep in mind
that this is 8 bit recording, so don't expect CD quality.
Keep in mind that this release is just an alpha type release. The
sound quality may suffer drastically due to 'pops and clicks' and
the odd spurt of white noise. The only reason I am releasing the
program like this, is because I have to go back to school today, and
I will be hard pressed to find a minute to work on this for the next
three months. But I will try as hard as I can to get a decent working
version out. There is no software like this available for the GUS, so
I thought I would let you all play with it until something better
comes out.
If I get the time, and I can get the new 16 bit card, or the
Ultrasound MAX in my hands, then I will do a 16 bit recording
version. I will call this the 'PRO' version or something.
How to configure your equipment for Recording
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PLEASE READ THIS! THIS IS IMPORTANT!
To achieve simultaneous recording and playback, we have to avoid the
output -> input loopback problem. We avoid this by playing back all
tracks on the right channel, while recording on the left channel.
Connect your source for recording into the LEFT input channel of
either the MIC-IN, or LINE-IN. Then monitor what you are playing back
with the right channel of the output. The balance settings only take
effect when you are 'playing' back the tracks. When recording, all
tracks will be heard on the right channel.
Since this application is doing both recording and playback at the
same time, set your DMA channels up for this. This means the recording
DMA, and the playback DMA must be on different channels. I would
also strongly advise using 16 bit DMA channels if possible. This
program is constantly pushing data through the DMA channels so it
needs as much bandwidth as possible.
If you get a EMM386.EXE error, just follow the instructions and add
the D=128 to EMM386.EXE. I have not tried this with any other memory
managers or machines, so I can't speculate.
This program writes all recorded information to the Hard Drive.
If you have digitally recorded before, you will know that Hard Drive
space can be used very rapidly with a program like this. Consider
recording 8 tracks of 5 minutes each at 22050hz. This would require
5 * 60 * 22050 * 8 = 53 Megabytes of Hard drive space! The amount
of free Hard Drive space you will need will depend on what kind of
recording you are doing. If you only used 3 tracks, of 1 minute each,
at 8000hz, you would only require 1.5 Megabytes of Hard drive space.
I would also suggest you only run this program under DOS. This
program is timing sensitive. If a multitasking OS takes away too
many CPU cycles, the playback or recording will become seriously
messed up. I have run this program under OS/2, since I use this
for development. I have noticed that some times this program will
work great, then the next day, it will act completely whacko. So
keep it to DOS unless you want surprises.
Explanation of Keys
~~~~~~~~~~~~~~~~~~~
Sorry for the awkward layout of the keys, I'll fix this when I get
time.
Here is what the keys do.
T: This will toggle the mute and play status of a track. If the
track said 'PLAY', it will be toggled to 'MUTE' and vice
versa. MUTE the track when you do not want to hear it in the
combined output of all tracks. Otherwise, keep it on PLAY.
It should also be noted that when recording, it is best to
have a minimal amount of tracks playing back. One track
would be the preference. The more tracks played, the higher
the chance of losing samples when recording.
B: This will adjust the balance of a track. A balance of '0'
means all the way left, while a balance of '15' is all the
way right. A balance of '7' is the middle.
V: This will adjust the volume of a track. A volume of 0 is
silence, while a volume of 4095 is full volume. Keep in mind
that you probably can't hear anything below 2000, since this
volume setting is logarithmic.
E: This will let you attach a description to a track. You may
want to do this so that you remember which track is 'Drums'
and which track is 'guitar', etc.
F: This will let you adjust the frequency to record and play back
at. Higher frequencies need more Hard Drive space, but will
give you higher quality. Lower frequencies give less quality,
but save Hard Drive space. Allthough you can set it anywhere
from 4000 - 44100, keep in mind the Ultrasound only has 256
discrete recording rates. Selecting an unsupported rate may
cause timing problems when recording and playing back. Keep
safe and stick to a known frequency such as 44100, 22050, or
11025.
D: This will delete a track, and any information associated with
it.
N: This toggles the status of the LINE-IN. It must be toggled to
ACTIVE if you wan't to record from the LINE-IN. If you don't
make either the LINE-IN or the MIC-IN active, you will just
be recording silence.
M: This toggles the status of the MIC-IN. It must be toggled to
ACTIVE if you wan't to record from the MIC-IN. It is possible
to have both MIC and LINE-IN active if you want to use both
at the same time.
R: This will start recording of a track. You will hear any tracks
that say 'PLAY' while you are recording the new track. Press
any key to stop the recording process.
P: This will play back all track that say 'PLAY' with the correct
balance settings.
L: This will save the work file you are currently working on, and
load up another work file that already exists.
C: This will save the work file you are currently working on, and
create a new work file to work on.
S: This will save your work file in case of a crash or something.
Q: This will save your work file, and exit to DOS.
K: This will delete your work file, and then give you the option
of exiting the program, or creating another work file. Quiting
the program is the only way to permanently get rid of a work
file. Sorry if this is kludgy, I haven't had time to think it
out better =).
Z: This is a hidden key that will simply redraw the screen, in
case some unseen mishap happens to screw it up =).
Other Things
~~~~~~~~~~~~
This program will use as much of your Ultrasound's RAM as possible.
You will get better results with more RAM on your card. With 256k,
all memory will be used when playing back 2 tracks. After that,
the size of the buffers are diminished. Smaller buffers will likely
introduce more clicks and pops. With 1MB, you can play back 8 tracks
before the buffers diminish in size.
Here's a few hints on using this program. You will get best results
with a fast, defragmented hard drive. You will also get better
results if you have a lot of space left on your drive. I've never
tried this program with disk compression, but I would avoid using
something like stacker or doublespace. Since this application
relies on the speed of moving data to and from the hard drive, the
compression overhead may cause loss of data or 'skips' in the sound.
This version doesn't play the last bit of information in a track.
(Sorry, didn't have time to fix this up). So when you record, always
wait a few seconds before you start the sound, and wait a few
seconds after you finish playing whatever you are recording. If you
don't the last bit of sound may be cut off when you play it.
What's Next?
~~~~~~~~~~~~
The only Agenda I have for this program right now, is to rewrite
the playback and recording functions. The routines I am using now
are basically just routines I 'hacked' out to see if this program
would really work. They need a complete overhaul. I am using polled
I/O to check when to record the next buffer, etc. This should really
be done with interupts. Problem is I've never programmed with
interupts before, so I'm still trying to figure out where to start.
The playback from this program should be perfect, the problem is
with the recording. Any crap you hear in the output was introduced
by my bad recording routines. What happens, is you lose samples every
time a new recording buffer is started. On the other hand, when
playing back, no samples are lost. This creates a 'race' condition.
The playback routines will eventually 'pass' the recording routines,
and then screw up because the new data is being DMA'd at the wrong
time.
After I get the audio routines perfected (I've spent about 80% of my
time on the interface =(), I will probably add a GUI. This will
probably take a long time because I will be in school trying to
figure out how to implement a GUI, for the next 9 months.
Bug Reports, Suggestions, and Comments
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I would appreciate any of these. Actually it would be nice if
somebody could think of a name for this software, because the name
I have now for it really stinks. I just couldn't think of a good name.
Here's how you can contact me:
Internet Address:
D3140058@bcit.bc.ca
*Note, this account had no internet access at the moment, since I
just got this account yesterday. Maybe by the time you send mail
to me, it will be working properly. (sorry if it isn't).
A1140338@bcit.bc.ca
*This is my old account, which does work properly. Note that this
will probably expire soon (maybe in a week).
If both these accounts are messed up (I wouldn't doubt it), you can
contact me through an Authorized Gravis node and ask me a question
in the Gravis.Chat area. I also peruse adlib.fido sometimes, but
I won't be reading it much now that I am in school.
Leave a message to Dave Mercier if you do it the last way.
If all else fails, you could write me at:
Dave Mercier
105-3955 Smith Ave.
Burnaby B.C.
V5G 2T8
Canada
I'd appreciate any feedback.
By the way, this version of MRGUS is Public Domain. Future versions
may be Shareware of Commercial, if it ever gets good enough. I
wouldn't make this version shareware because of all the pops and
clicks in the sound, and other assorted garbage. I do hold the rights
to the source code however.
Credits
~~~~~~~
Thanks to Tom Klok for an excellent idea on how to bypass the GUS's
output/input loopback problem. This program had been attempted a few
months earlier, but was scrapped after I thought it was unfeasible
because of the loopback problem. Also thanks to Advanced Gravis for
the support of their product through the BBS and free SDK's.